/*
 * Copyright 2018 JDCLOUD.COM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http:#www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * 云鼎短信服务 openapi
 * 云鼎短信服务 openapi
 *
 * OpenAPI spec version: v1
 * Contact: 
 *
 * NOTE: This class is auto generated by the jdcloud code generator program.
 */


using JDCloudSDK.Core.Auth;
using JDCloudSDK.Core.Client;
using JDCloudSDK.Core.Http;
using JDCloudSDK.Ydsms.Apis;
using JDCloudSDK.Ydsms.Model;
using System;
using System.Collections.Generic;
using System.Text;
#if NET40||NET35
#else
using System.Threading.Tasks;
#endif

namespace JDCloudSDK.Ydsms.Client
{
    /// <summary>
    ///  云鼎短信服务 openapi
    ///  云鼎短信服务 openapi
    ///  Ydsms Api 客户端
    ///</summary>
    public class YdsmsClient : JdcloudClient
    {

        /// <summary>
        ///  默认私有构造函数
        /// </summary>
        private YdsmsClient()
        {

        }

        /// <summary>
        /// 默认构造函数
        /// </summary>
        /// <param name="credentialsProvider">认证信息</param>
        /// <param name="httpRequestConfig">http 客户端配置信息</param>
        /// <param name="environment">sdk 环境配置信息</param>
        public YdsmsClient(CredentialsProvider credentialsProvider, HttpRequestConfig httpRequestConfig,SDKEnvironment environment)
        {
            this.httpRequestConfig = httpRequestConfig;
            this.credentialsProvider = credentialsProvider;
            this.environment = environment;
        }

        /// <summary>
        /// 默认构造函数
        /// </summary>
        /// <param name="httpRequestConfig">http 客户端配置信息</param>
        /// <param name="credentialsProvider">认证信息</param>
        public YdsmsClient(CredentialsProvider credentialsProvider,HttpRequestConfig httpRequestConfig)
        {
            this.httpRequestConfig = httpRequestConfig;
            this.credentialsProvider = credentialsProvider;
        }

        /// <summary>
        /// 默认构造函数，
        /// 注意如果使用此方法 httpRequestConfig 使用的http 请求 schema 为Https
        /// </summary>
        /// <param name="credentialsProvider">认证信息</param>
        public YdsmsClient(CredentialsProvider credentialsProvider)
        {
            this.credentialsProvider = credentialsProvider;
        }

        /// <summary>
        ///  版本号 1.2.8
        ///</summary>
        public const string ClientVersion = "1.2.8";

        private const string apiVersion = "v1";
        private const string userAgentPrefix = "JdcloudSdkDotNet";
        private const string defaultEndpoint = "ydsms.jdcloud-api.com";
        private const string serviceName = "ydsms";
        private const string userAgent = userAgentPrefix + "/" + ClientVersion + " " + serviceName + "/" + apiVersion;


        private SDKEnvironment environment = new SDKEnvironment(defaultEndpoint);
        private CredentialsProvider credentialsProvider;
        private HttpRequestConfig httpRequestConfig;

        /// <summary>
        ///  获取证书信息
        ///</summary>
        public override CredentialsProvider CredentialsProvider   { get { return credentialsProvider; } }

        /// <summary>
        ///  获取http 客户端配置信息
        ///</summary>
        public override HttpRequestConfig HttpRequestConfig { get { return httpRequestConfig; } }

        /// <summary>
        ///  获取sdk环境配置信息
        ///</summary>
        public override SDKEnvironment SDKEnvironment { get { return environment; } }

        /// <summary>
        ///  获取用户自定义浏览器识别字符串
        ///</summary>
        public override string UserAgent { get { return userAgent; } }

        /// <summary>
        ///  获取服务名称
        ///</summary>
        public override string ServiceName { get { return serviceName; } }

        /// <summary>
        ///  获取版本号
        ///</summary>
        public override string Version { get { return apiVersion; } }



#if NET40||NET35
        /// <summary>
        ///  查询套餐包列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListSmsPackagesUsingGETResponse ListSmsPackagesUsingGET(ListSmsPackagesUsingGETRequest request) {
            return  new ListSmsPackagesUsingGETExecutor().Client(this).Execute<ListSmsPackagesUsingGETResponse, ListSmsPackagesUsingGETResult, ListSmsPackagesUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询套餐包列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListSmsPackagesUsingGETResponse> ListSmsPackagesUsingGET(ListSmsPackagesUsingGETRequest request) {
            return await new ListSmsPackagesUsingGETExecutor().Client(this).Execute<ListSmsPackagesUsingGETResponse, ListSmsPackagesUsingGETResult, ListSmsPackagesUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  开通云鼎短信服务
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public OpenServiceUsingPOSTResponse OpenServiceUsingPOST(OpenServiceUsingPOSTRequest request) {
            return  new OpenServiceUsingPOSTExecutor().Client(this).Execute<OpenServiceUsingPOSTResponse, OpenServiceUsingPOSTResult, OpenServiceUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  开通云鼎短信服务
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<OpenServiceUsingPOSTResponse> OpenServiceUsingPOST(OpenServiceUsingPOSTRequest request) {
            return await new OpenServiceUsingPOSTExecutor().Client(this).Execute<OpenServiceUsingPOSTResponse, OpenServiceUsingPOSTResult, OpenServiceUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  修改应用启停状态
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ModifyStatusUsingGETResponse ModifyStatusUsingGET(ModifyStatusUsingGETRequest request) {
            return  new ModifyStatusUsingGETExecutor().Client(this).Execute<ModifyStatusUsingGETResponse, ModifyStatusUsingGETResult, ModifyStatusUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  修改应用启停状态
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ModifyStatusUsingGETResponse> ModifyStatusUsingGET(ModifyStatusUsingGETRequest request) {
            return await new ModifyStatusUsingGETExecutor().Client(this).Execute<ModifyStatusUsingGETResponse, ModifyStatusUsingGETResult, ModifyStatusUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  根据加密pin发送短信
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SendMessagesByEncPinUsingPOSTResponse SendMessagesByEncPinUsingPOST(SendMessagesByEncPinUsingPOSTRequest request) {
            return  new SendMessagesByEncPinUsingPOSTExecutor().Client(this).Execute<SendMessagesByEncPinUsingPOSTResponse, SendMessagesByEncPinUsingPOSTResult, SendMessagesByEncPinUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  根据加密pin发送短信
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SendMessagesByEncPinUsingPOSTResponse> SendMessagesByEncPinUsingPOST(SendMessagesByEncPinUsingPOSTRequest request) {
            return await new SendMessagesByEncPinUsingPOSTExecutor().Client(this).Execute<SendMessagesByEncPinUsingPOSTResponse, SendMessagesByEncPinUsingPOSTResult, SendMessagesByEncPinUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询应用secretKey
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QuerySecretKeyUsingGETResponse QuerySecretKeyUsingGET(QuerySecretKeyUsingGETRequest request) {
            return  new QuerySecretKeyUsingGETExecutor().Client(this).Execute<QuerySecretKeyUsingGETResponse, QuerySecretKeyUsingGETResult, QuerySecretKeyUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询应用secretKey
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QuerySecretKeyUsingGETResponse> QuerySecretKeyUsingGET(QuerySecretKeyUsingGETRequest request) {
            return await new QuerySecretKeyUsingGETExecutor().Client(this).Execute<QuerySecretKeyUsingGETResponse, QuerySecretKeyUsingGETResult, QuerySecretKeyUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  根据pin发送短信
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SendMessagesByPinUsingPOSTResponse SendMessagesByPinUsingPOST(SendMessagesByPinUsingPOSTRequest request) {
            return  new SendMessagesByPinUsingPOSTExecutor().Client(this).Execute<SendMessagesByPinUsingPOSTResponse, SendMessagesByPinUsingPOSTResult, SendMessagesByPinUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  根据pin发送短信
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SendMessagesByPinUsingPOSTResponse> SendMessagesByPinUsingPOST(SendMessagesByPinUsingPOSTRequest request) {
            return await new SendMessagesByPinUsingPOSTExecutor().Client(this).Execute<SendMessagesByPinUsingPOSTResponse, SendMessagesByPinUsingPOSTResult, SendMessagesByPinUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询当前自然月内所有应用发送量总和
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryAmountUsingGETResponse QueryAmountUsingGET(QueryAmountUsingGETRequest request) {
            return  new QueryAmountUsingGETExecutor().Client(this).Execute<QueryAmountUsingGETResponse, QueryAmountUsingGETResult, QueryAmountUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询当前自然月内所有应用发送量总和
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryAmountUsingGETResponse> QueryAmountUsingGET(QueryAmountUsingGETRequest request) {
            return await new QueryAmountUsingGETExecutor().Client(this).Execute<QueryAmountUsingGETResponse, QueryAmountUsingGETResult, QueryAmountUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询短信模板详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetSmsTemplateByIdUsingGETResponse GetSmsTemplateByIdUsingGET(GetSmsTemplateByIdUsingGETRequest request) {
            return  new GetSmsTemplateByIdUsingGETExecutor().Client(this).Execute<GetSmsTemplateByIdUsingGETResponse, GetSmsTemplateByIdUsingGETResult, GetSmsTemplateByIdUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询短信模板详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetSmsTemplateByIdUsingGETResponse> GetSmsTemplateByIdUsingGET(GetSmsTemplateByIdUsingGETRequest request) {
            return await new GetSmsTemplateByIdUsingGETExecutor().Client(this).Execute<GetSmsTemplateByIdUsingGETResponse, GetSmsTemplateByIdUsingGETResult, GetSmsTemplateByIdUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建短信应用
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateSmsAppUsingPOSTResponse CreateSmsAppUsingPOST(CreateSmsAppUsingPOSTRequest request) {
            return  new CreateSmsAppUsingPOSTExecutor().Client(this).Execute<CreateSmsAppUsingPOSTResponse, CreateSmsAppUsingPOSTResult, CreateSmsAppUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  创建短信应用
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateSmsAppUsingPOSTResponse> CreateSmsAppUsingPOST(CreateSmsAppUsingPOSTRequest request) {
            return await new CreateSmsAppUsingPOSTExecutor().Client(this).Execute<CreateSmsAppUsingPOSTResponse, CreateSmsAppUsingPOSTResult, CreateSmsAppUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  编辑短信签名
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ModifySmsSignUsingPOSTResponse ModifySmsSignUsingPOST(ModifySmsSignUsingPOSTRequest request) {
            return  new ModifySmsSignUsingPOSTExecutor().Client(this).Execute<ModifySmsSignUsingPOSTResponse, ModifySmsSignUsingPOSTResult, ModifySmsSignUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  编辑短信签名
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ModifySmsSignUsingPOSTResponse> ModifySmsSignUsingPOST(ModifySmsSignUsingPOSTRequest request) {
            return await new ModifySmsSignUsingPOSTExecutor().Client(this).Execute<ModifySmsSignUsingPOSTResponse, ModifySmsSignUsingPOSTResult, ModifySmsSignUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询短信发送任务列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListSmsTasksUsingGETResponse ListSmsTasksUsingGET(ListSmsTasksUsingGETRequest request) {
            return  new ListSmsTasksUsingGETExecutor().Client(this).Execute<ListSmsTasksUsingGETResponse, ListSmsTasksUsingGETResult, ListSmsTasksUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询短信发送任务列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListSmsTasksUsingGETResponse> ListSmsTasksUsingGET(ListSmsTasksUsingGETRequest request) {
            return await new ListSmsTasksUsingGETExecutor().Client(this).Execute<ListSmsTasksUsingGETResponse, ListSmsTasksUsingGETResult, ListSmsTasksUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询应用发送短信总体情况
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListSmsSendOverviewUsingGETResponse ListSmsSendOverviewUsingGET(ListSmsSendOverviewUsingGETRequest request) {
            return  new ListSmsSendOverviewUsingGETExecutor().Client(this).Execute<ListSmsSendOverviewUsingGETResponse, ListSmsSendOverviewUsingGETResult, ListSmsSendOverviewUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询应用发送短信总体情况
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListSmsSendOverviewUsingGETResponse> ListSmsSendOverviewUsingGET(ListSmsSendOverviewUsingGETRequest request) {
            return await new ListSmsSendOverviewUsingGETExecutor().Client(this).Execute<ListSmsSendOverviewUsingGETResponse, ListSmsSendOverviewUsingGETResult, ListSmsSendOverviewUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建短信模板
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateSmsTemplateUsingPOSTResponse CreateSmsTemplateUsingPOST(CreateSmsTemplateUsingPOSTRequest request) {
            return  new CreateSmsTemplateUsingPOSTExecutor().Client(this).Execute<CreateSmsTemplateUsingPOSTResponse, CreateSmsTemplateUsingPOSTResult, CreateSmsTemplateUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  创建短信模板
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateSmsTemplateUsingPOSTResponse> CreateSmsTemplateUsingPOST(CreateSmsTemplateUsingPOSTRequest request) {
            return await new CreateSmsTemplateUsingPOSTExecutor().Client(this).Execute<CreateSmsTemplateUsingPOSTResponse, CreateSmsTemplateUsingPOSTResult, CreateSmsTemplateUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  修改应用通用设置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ModifyAppGeneralSettingByIdResponse ModifyAppGeneralSettingById(ModifyAppGeneralSettingByIdRequest request) {
            return  new ModifyAppGeneralSettingByIdExecutor().Client(this).Execute<ModifyAppGeneralSettingByIdResponse, ModifyAppGeneralSettingByIdResult, ModifyAppGeneralSettingByIdRequest>(request);
        }
#else
        /// <summary>
        ///  修改应用通用设置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ModifyAppGeneralSettingByIdResponse> ModifyAppGeneralSettingById(ModifyAppGeneralSettingByIdRequest request) {
            return await new ModifyAppGeneralSettingByIdExecutor().Client(this).Execute<ModifyAppGeneralSettingByIdResponse, ModifyAppGeneralSettingByIdResult, ModifyAppGeneralSettingByIdRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询短信发送记录
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QuerySendRecordUsingGETResponse QuerySendRecordUsingGET(QuerySendRecordUsingGETRequest request) {
            return  new QuerySendRecordUsingGETExecutor().Client(this).Execute<QuerySendRecordUsingGETResponse, QuerySendRecordUsingGETResult, QuerySendRecordUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询短信发送记录
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QuerySendRecordUsingGETResponse> QuerySendRecordUsingGET(QuerySendRecordUsingGETRequest request) {
            return await new QuerySendRecordUsingGETExecutor().Client(this).Execute<QuerySendRecordUsingGETResponse, QuerySendRecordUsingGETResult, QuerySendRecordUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  编辑短信模板
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ModifySmsTemplateUsingPOSTResponse ModifySmsTemplateUsingPOST(ModifySmsTemplateUsingPOSTRequest request) {
            return  new ModifySmsTemplateUsingPOSTExecutor().Client(this).Execute<ModifySmsTemplateUsingPOSTResponse, ModifySmsTemplateUsingPOSTResult, ModifySmsTemplateUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  编辑短信模板
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ModifySmsTemplateUsingPOSTResponse> ModifySmsTemplateUsingPOST(ModifySmsTemplateUsingPOSTRequest request) {
            return await new ModifySmsTemplateUsingPOSTExecutor().Client(this).Execute<ModifySmsTemplateUsingPOSTResponse, ModifySmsTemplateUsingPOSTResult, ModifySmsTemplateUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询套餐包详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetSmsPackageByIdUsingGETResponse GetSmsPackageByIdUsingGET(GetSmsPackageByIdUsingGETRequest request) {
            return  new GetSmsPackageByIdUsingGETExecutor().Client(this).Execute<GetSmsPackageByIdUsingGETResponse, GetSmsPackageByIdUsingGETResult, GetSmsPackageByIdUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询套餐包详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetSmsPackageByIdUsingGETResponse> GetSmsPackageByIdUsingGET(GetSmsPackageByIdUsingGETRequest request) {
            return await new GetSmsPackageByIdUsingGETExecutor().Client(this).Execute<GetSmsPackageByIdUsingGETResponse, GetSmsPackageByIdUsingGETResult, GetSmsPackageByIdUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建短信签名
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateSmsSignUsingPOSTResponse CreateSmsSignUsingPOST(CreateSmsSignUsingPOSTRequest request) {
            return  new CreateSmsSignUsingPOSTExecutor().Client(this).Execute<CreateSmsSignUsingPOSTResponse, CreateSmsSignUsingPOSTResult, CreateSmsSignUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  创建短信签名
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateSmsSignUsingPOSTResponse> CreateSmsSignUsingPOST(CreateSmsSignUsingPOSTRequest request) {
            return await new CreateSmsSignUsingPOSTExecutor().Client(this).Execute<CreateSmsSignUsingPOSTResponse, CreateSmsSignUsingPOSTResult, CreateSmsSignUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  编辑短信发送任务
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ModifySmsTaskUsingPOSTResponse ModifySmsTaskUsingPOST(ModifySmsTaskUsingPOSTRequest request) {
            return  new ModifySmsTaskUsingPOSTExecutor().Client(this).Execute<ModifySmsTaskUsingPOSTResponse, ModifySmsTaskUsingPOSTResult, ModifySmsTaskUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  编辑短信发送任务
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ModifySmsTaskUsingPOSTResponse> ModifySmsTaskUsingPOST(ModifySmsTaskUsingPOSTRequest request) {
            return await new ModifySmsTaskUsingPOSTExecutor().Client(this).Execute<ModifySmsTaskUsingPOSTResponse, ModifySmsTaskUsingPOSTResult, ModifySmsTaskUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询短信回执记录
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryReceiptRecordUsingGETResponse QueryReceiptRecordUsingGET(QueryReceiptRecordUsingGETRequest request) {
            return  new QueryReceiptRecordUsingGETExecutor().Client(this).Execute<QueryReceiptRecordUsingGETResponse, QueryReceiptRecordUsingGETResult, QueryReceiptRecordUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询短信回执记录
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryReceiptRecordUsingGETResponse> QueryReceiptRecordUsingGET(QueryReceiptRecordUsingGETRequest request) {
            return await new QueryReceiptRecordUsingGETExecutor().Client(this).Execute<QueryReceiptRecordUsingGETResponse, QueryReceiptRecordUsingGETResult, QueryReceiptRecordUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询应用列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListSmsAppsUsingGETResponse ListSmsAppsUsingGET(ListSmsAppsUsingGETRequest request) {
            return  new ListSmsAppsUsingGETExecutor().Client(this).Execute<ListSmsAppsUsingGETResponse, ListSmsAppsUsingGETResult, ListSmsAppsUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询应用列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListSmsAppsUsingGETResponse> ListSmsAppsUsingGET(ListSmsAppsUsingGETRequest request) {
            return await new ListSmsAppsUsingGETExecutor().Client(this).Execute<ListSmsAppsUsingGETResponse, ListSmsAppsUsingGETResult, ListSmsAppsUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询应用详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetSmsAppByIdUsingGETResponse GetSmsAppByIdUsingGET(GetSmsAppByIdUsingGETRequest request) {
            return  new GetSmsAppByIdUsingGETExecutor().Client(this).Execute<GetSmsAppByIdUsingGETResponse, GetSmsAppByIdUsingGETResult, GetSmsAppByIdUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询应用详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetSmsAppByIdUsingGETResponse> GetSmsAppByIdUsingGET(GetSmsAppByIdUsingGETRequest request) {
            return await new GetSmsAppByIdUsingGETExecutor().Client(this).Execute<GetSmsAppByIdUsingGETResponse, GetSmsAppByIdUsingGETResult, GetSmsAppByIdUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询短信回复记录
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryReplyRecordUsingGETResponse QueryReplyRecordUsingGET(QueryReplyRecordUsingGETRequest request) {
            return  new QueryReplyRecordUsingGETExecutor().Client(this).Execute<QueryReplyRecordUsingGETResponse, QueryReplyRecordUsingGETResult, QueryReplyRecordUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询短信回复记录
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryReplyRecordUsingGETResponse> QueryReplyRecordUsingGET(QueryReplyRecordUsingGETRequest request) {
            return await new QueryReplyRecordUsingGETExecutor().Client(this).Execute<QueryReplyRecordUsingGETResponse, QueryReplyRecordUsingGETResult, QueryReplyRecordUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  编辑短信应用
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ModifySmsAppUsingPOSTResponse ModifySmsAppUsingPOST(ModifySmsAppUsingPOSTRequest request) {
            return  new ModifySmsAppUsingPOSTExecutor().Client(this).Execute<ModifySmsAppUsingPOSTResponse, ModifySmsAppUsingPOSTResult, ModifySmsAppUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  编辑短信应用
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ModifySmsAppUsingPOSTResponse> ModifySmsAppUsingPOST(ModifySmsAppUsingPOSTRequest request) {
            return await new ModifySmsAppUsingPOSTExecutor().Client(this).Execute<ModifySmsAppUsingPOSTResponse, ModifySmsAppUsingPOSTResult, ModifySmsAppUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询套餐包规格列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetSmsPackageSpecificationsUsingGETResponse GetSmsPackageSpecificationsUsingGET(GetSmsPackageSpecificationsUsingGETRequest request) {
            return  new GetSmsPackageSpecificationsUsingGETExecutor().Client(this).Execute<GetSmsPackageSpecificationsUsingGETResponse, GetSmsPackageSpecificationsUsingGETResult, GetSmsPackageSpecificationsUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询套餐包规格列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetSmsPackageSpecificationsUsingGETResponse> GetSmsPackageSpecificationsUsingGET(GetSmsPackageSpecificationsUsingGETRequest request) {
            return await new GetSmsPackageSpecificationsUsingGETExecutor().Client(this).Execute<GetSmsPackageSpecificationsUsingGETResponse, GetSmsPackageSpecificationsUsingGETResult, GetSmsPackageSpecificationsUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询短信签名证明材料类型列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListSmsCertificateTypesUsingGETResponse ListSmsCertificateTypesUsingGET(ListSmsCertificateTypesUsingGETRequest request) {
            return  new ListSmsCertificateTypesUsingGETExecutor().Client(this).Execute<ListSmsCertificateTypesUsingGETResponse, ListSmsCertificateTypesUsingGETResult, ListSmsCertificateTypesUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询短信签名证明材料类型列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListSmsCertificateTypesUsingGETResponse> ListSmsCertificateTypesUsingGET(ListSmsCertificateTypesUsingGETRequest request) {
            return await new ListSmsCertificateTypesUsingGETExecutor().Client(this).Execute<ListSmsCertificateTypesUsingGETResponse, ListSmsCertificateTypesUsingGETResult, ListSmsCertificateTypesUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询应用通用设置列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListSmsAppGeneralSettingsUsingGETResponse ListSmsAppGeneralSettingsUsingGET(ListSmsAppGeneralSettingsUsingGETRequest request) {
            return  new ListSmsAppGeneralSettingsUsingGETExecutor().Client(this).Execute<ListSmsAppGeneralSettingsUsingGETResponse, ListSmsAppGeneralSettingsUsingGETResult, ListSmsAppGeneralSettingsUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询应用通用设置列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListSmsAppGeneralSettingsUsingGETResponse> ListSmsAppGeneralSettingsUsingGET(ListSmsAppGeneralSettingsUsingGETRequest request) {
            return await new ListSmsAppGeneralSettingsUsingGETExecutor().Client(this).Execute<ListSmsAppGeneralSettingsUsingGETResponse, ListSmsAppGeneralSettingsUsingGETResult, ListSmsAppGeneralSettingsUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建短信发送任务
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateSmsTaskUsingPOSTResponse CreateSmsTaskUsingPOST(CreateSmsTaskUsingPOSTRequest request) {
            return  new CreateSmsTaskUsingPOSTExecutor().Client(this).Execute<CreateSmsTaskUsingPOSTResponse, CreateSmsTaskUsingPOSTResult, CreateSmsTaskUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  创建短信发送任务
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateSmsTaskUsingPOSTResponse> CreateSmsTaskUsingPOST(CreateSmsTaskUsingPOSTRequest request) {
            return await new CreateSmsTaskUsingPOSTExecutor().Client(this).Execute<CreateSmsTaskUsingPOSTResponse, CreateSmsTaskUsingPOSTResult, CreateSmsTaskUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询短信发送任务详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetSmsTaskIdUsingGETResponse GetSmsTaskIdUsingGET(GetSmsTaskIdUsingGETRequest request) {
            return  new GetSmsTaskIdUsingGETExecutor().Client(this).Execute<GetSmsTaskIdUsingGETResponse, GetSmsTaskIdUsingGETResult, GetSmsTaskIdUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询短信发送任务详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetSmsTaskIdUsingGETResponse> GetSmsTaskIdUsingGET(GetSmsTaskIdUsingGETRequest request) {
            return await new GetSmsTaskIdUsingGETExecutor().Client(this).Execute<GetSmsTaskIdUsingGETResponse, GetSmsTaskIdUsingGETResult, GetSmsTaskIdUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  获取短信任务中的短信内容及计费条数
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetSmsTaskContentUsingGETResponse GetSmsTaskContentUsingGET(GetSmsTaskContentUsingGETRequest request) {
            return  new GetSmsTaskContentUsingGETExecutor().Client(this).Execute<GetSmsTaskContentUsingGETResponse, GetSmsTaskContentUsingGETResult, GetSmsTaskContentUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  获取短信任务中的短信内容及计费条数
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetSmsTaskContentUsingGETResponse> GetSmsTaskContentUsingGET(GetSmsTaskContentUsingGETRequest request) {
            return await new GetSmsTaskContentUsingGETExecutor().Client(this).Execute<GetSmsTaskContentUsingGETResponse, GetSmsTaskContentUsingGETResult, GetSmsTaskContentUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  根据订单号发送短信
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SendMessagesByOrderIdUsingPOSTResponse SendMessagesByOrderIdUsingPOST(SendMessagesByOrderIdUsingPOSTRequest request) {
            return  new SendMessagesByOrderIdUsingPOSTExecutor().Client(this).Execute<SendMessagesByOrderIdUsingPOSTResponse, SendMessagesByOrderIdUsingPOSTResult, SendMessagesByOrderIdUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  根据订单号发送短信
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SendMessagesByOrderIdUsingPOSTResponse> SendMessagesByOrderIdUsingPOST(SendMessagesByOrderIdUsingPOSTRequest request) {
            return await new SendMessagesByOrderIdUsingPOSTExecutor().Client(this).Execute<SendMessagesByOrderIdUsingPOSTResponse, SendMessagesByOrderIdUsingPOSTResult, SendMessagesByOrderIdUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  启动任务
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public TaskStartUsingGETResponse TaskStartUsingGET(TaskStartUsingGETRequest request) {
            return  new TaskStartUsingGETExecutor().Client(this).Execute<TaskStartUsingGETResponse, TaskStartUsingGETResult, TaskStartUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  启动任务
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<TaskStartUsingGETResponse> TaskStartUsingGET(TaskStartUsingGETRequest request) {
            return await new TaskStartUsingGETExecutor().Client(this).Execute<TaskStartUsingGETResponse, TaskStartUsingGETResult, TaskStartUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询短信签名详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetSmsSignByIdUsingGETResponse GetSmsSignByIdUsingGET(GetSmsSignByIdUsingGETRequest request) {
            return  new GetSmsSignByIdUsingGETExecutor().Client(this).Execute<GetSmsSignByIdUsingGETResponse, GetSmsSignByIdUsingGETResult, GetSmsSignByIdUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询短信签名详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetSmsSignByIdUsingGETResponse> GetSmsSignByIdUsingGET(GetSmsSignByIdUsingGETRequest request) {
            return await new GetSmsSignByIdUsingGETExecutor().Client(this).Execute<GetSmsSignByIdUsingGETResponse, GetSmsSignByIdUsingGETResult, GetSmsSignByIdUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询短信签名列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListSmsSignsUsingGETResponse ListSmsSignsUsingGET(ListSmsSignsUsingGETRequest request) {
            return  new ListSmsSignsUsingGETExecutor().Client(this).Execute<ListSmsSignsUsingGETResponse, ListSmsSignsUsingGETResult, ListSmsSignsUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询短信签名列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListSmsSignsUsingGETResponse> ListSmsSignsUsingGET(ListSmsSignsUsingGETRequest request) {
            return await new ListSmsSignsUsingGETExecutor().Client(this).Execute<ListSmsSignsUsingGETResponse, ListSmsSignsUsingGETResult, ListSmsSignsUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询短信模板列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListSmsTemplatesUsingGETResponse ListSmsTemplatesUsingGET(ListSmsTemplatesUsingGETRequest request) {
            return  new ListSmsTemplatesUsingGETExecutor().Client(this).Execute<ListSmsTemplatesUsingGETResponse, ListSmsTemplatesUsingGETResult, ListSmsTemplatesUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询短信模板列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListSmsTemplatesUsingGETResponse> ListSmsTemplatesUsingGET(ListSmsTemplatesUsingGETRequest request) {
            return await new ListSmsTemplatesUsingGETExecutor().Client(this).Execute<ListSmsTemplatesUsingGETResponse, ListSmsTemplatesUsingGETResult, ListSmsTemplatesUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  批量发送短信
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SendMessagesUsingPOSTResponse SendMessagesUsingPOST(SendMessagesUsingPOSTRequest request) {
            return  new SendMessagesUsingPOSTExecutor().Client(this).Execute<SendMessagesUsingPOSTResponse, SendMessagesUsingPOSTResult, SendMessagesUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  批量发送短信
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SendMessagesUsingPOSTResponse> SendMessagesUsingPOST(SendMessagesUsingPOSTRequest request) {
            return await new SendMessagesUsingPOSTExecutor().Client(this).Execute<SendMessagesUsingPOSTResponse, SendMessagesUsingPOSTResult, SendMessagesUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询短信签名类型列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListSmsSignTypesUsingGETResponse ListSmsSignTypesUsingGET(ListSmsSignTypesUsingGETRequest request) {
            return  new ListSmsSignTypesUsingGETExecutor().Client(this).Execute<ListSmsSignTypesUsingGETResponse, ListSmsSignTypesUsingGETResult, ListSmsSignTypesUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询短信签名类型列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListSmsSignTypesUsingGETResponse> ListSmsSignTypesUsingGET(ListSmsSignTypesUsingGETRequest request) {
            return await new ListSmsSignTypesUsingGETExecutor().Client(this).Execute<ListSmsSignTypesUsingGETResponse, ListSmsSignTypesUsingGETResult, ListSmsSignTypesUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除任务
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public TaskDeleteUsingDeleteResponse TaskDeleteUsingDelete(TaskDeleteUsingDeleteRequest request) {
            return  new TaskDeleteUsingDeleteExecutor().Client(this).Execute<TaskDeleteUsingDeleteResponse, TaskDeleteUsingDeleteResult, TaskDeleteUsingDeleteRequest>(request);
        }
#else
        /// <summary>
        ///  删除任务
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<TaskDeleteUsingDeleteResponse> TaskDeleteUsingDelete(TaskDeleteUsingDeleteRequest request) {
            return await new TaskDeleteUsingDeleteExecutor().Client(this).Execute<TaskDeleteUsingDeleteResponse, TaskDeleteUsingDeleteResult, TaskDeleteUsingDeleteRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建套餐包
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateSmsPackageUsingPOSTResponse CreateSmsPackageUsingPOST(CreateSmsPackageUsingPOSTRequest request) {
            return  new CreateSmsPackageUsingPOSTExecutor().Client(this).Execute<CreateSmsPackageUsingPOSTResponse, CreateSmsPackageUsingPOSTResult, CreateSmsPackageUsingPOSTRequest>(request);
        }
#else
        /// <summary>
        ///  创建套餐包
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateSmsPackageUsingPOSTResponse> CreateSmsPackageUsingPOST(CreateSmsPackageUsingPOSTRequest request) {
            return await new CreateSmsPackageUsingPOSTExecutor().Client(this).Execute<CreateSmsPackageUsingPOSTResponse, CreateSmsPackageUsingPOSTResult, CreateSmsPackageUsingPOSTRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询用户短信余量
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryRemainingUsingGETResponse QueryRemainingUsingGET(QueryRemainingUsingGETRequest request) {
            return  new QueryRemainingUsingGETExecutor().Client(this).Execute<QueryRemainingUsingGETResponse, QueryRemainingUsingGETResult, QueryRemainingUsingGETRequest>(request);
        }
#else
        /// <summary>
        ///  查询用户短信余量
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryRemainingUsingGETResponse> QueryRemainingUsingGET(QueryRemainingUsingGETRequest request) {
            return await new QueryRemainingUsingGETExecutor().Client(this).Execute<QueryRemainingUsingGETResponse, QueryRemainingUsingGETResult, QueryRemainingUsingGETRequest>(request).ConfigureAwait(false);
        }
#endif

            /// <summary>
            ///  默认YdsmsClient 构造器 接口
            ///</summary>
            public interface Builder
            {

                /// <summary>
                /// 设置认证信息参数
                /// </summary>
                /// <param name="provider">认证信息提供对象</param>
                /// <returns>ydsmsClient 构造器</returns>
                Builder CredentialsProvider(CredentialsProvider provider);

                /// <summary>
                /// 设置请求环境参数
                /// </summary>
                /// <param name="environment">环境参数信息</param>
                /// <returns>ydsmsClient 构造器</returns>
                Builder Environment(Core.Client.SDKEnvironment environment);

                /// <summary>
                /// http 请求配置信息
                /// </summary>
                /// <param name="config">http 请求配置信息</param>
                /// <returns>ydsmsClient 构造器</returns>
                Builder HttpRequestConfig(HttpRequestConfig config);

                /// <summary>
                ///  构造YdsmsClient 对象
                ///</summary>
                YdsmsClient Build();
            }

            /// <summary>
            ///  默认YdsmsClient 构造器
            ///</summary>
            public class DefaultBuilder : Builder
            {
                /// <summary>
                ///  YdsmsClient service client
                /// </summary>
                private  YdsmsClient ydsmsClient;

                /// <summary>
                ///  默认YdsmsClient 构造器构造对象
                ///</summary>
                public DefaultBuilder()
                {
                    ydsmsClient = new YdsmsClient();
                }

                /// <summary>
                ///  构造YdsmsClient 对象
                ///</summary>
                public YdsmsClient Build()
                {
                    if (ydsmsClient.CredentialsProvider == null)
                    {
                        //if credentialsProvider not set, try load jdcloud global default  credentials provider
                        ydsmsClient.credentialsProvider = JdCloud.DefaultInstance.GetCredentialsProvider();
                        if (ydsmsClient.credentialsProvider == null)
                        {
                            throw new ArgumentNullException("YdsmsClient build error: jdcloud credentials provider not set");
                        }
                    }
                    if (ydsmsClient.HttpRequestConfig == null)
                    {
                        ydsmsClient.httpRequestConfig = JdCloud.DefaultInstance.GetHttpRequestConfig();
                        if (ydsmsClient.httpRequestConfig == null)
                        {
                        throw new ArgumentNullException("YdsmsClient build error: http request config not set");
                        }
                    }
                    return ydsmsClient;
                }

                /// <summary>
                /// 设置认证信息参数
                /// </summary>
                /// <param name="provider">认证信息提供对象</param>
                /// <returns>ydsmsClient 构造器</returns>
                public Builder CredentialsProvider(CredentialsProvider provider)
                {
                    ydsmsClient.credentialsProvider = provider;
                    return this;
                }

                /// <summary>
                /// 设置请求环境参数
                /// </summary>
                /// <param name="environment">环境参数信息</param>
                /// <returns>ydsmsClient 构造器</returns>
                public Builder Environment(SDKEnvironment environment)
                {
                    ydsmsClient.environment = environment;
                    return this;
                }

                /// <summary>
                /// http 请求配置信息
                /// </summary>
                /// <param name="config">http 请求配置信息</param>
                /// <returns>ydsmsClient 构造器</returns>
                public Builder HttpRequestConfig(HttpRequestConfig config)
                {
                    ydsmsClient.httpRequestConfig = config;
                    return this;
                }
            }
    }
}
